System and Method for Selective Voicemail Transcription

ABSTRACT

Disclosed herein are systems, methods, and non-transitory computer-readable storage media for selectively transcribing messages. Five general approaches are disclosed herein. The first approach is directed to checking for a transcription capable client, which transcribes messages when a client device is capable of receiving transcriptions. The second and third approaches are platform-controlled and user-controlled predefined selective transcription. One aspect of this approach is driven by transcription rules. The fourth approach is user-controlled on-demand selective transcription before the message is stored or deposited for transcription. An example of this is a user transferring an incoming caller to voicemail and indicating that the voicemail be transcribed. The fifth approach is user-controlled on-demand selective transcription after the message is stored. In one embodiment of this approach, a user must specifically request that a stored message be transcribed.

PRIORITY INFORMATION

The present application is a continuation of U.S. patent applicationSer. No. 14/850,082, filed Sep. 10, 2015, which is a continuation ofSer. No. 14/531,572, filed Nov. 3, 2014, now U.S. Pat. No. 9,137,375,issued Sep. 15, 2015, which is a continuation of U.S. patent applicationSer. No. 12/852,190, filed Aug. 6, 2010, now U.S. Pat. No. 8,879,695,issued Nov. 4, 2014, the contents of which are incorporated herein byreference in their entirety.

BACKGROUND 1. Technical Field

The present disclosure relates to message transcriptions and morespecifically to selectively transcribing messages in a messagingplatform.

2. Introduction

Transcribing voicemails or other messages from multimedia forms such asvideo, images, and audio to text is a very resource intensive processthat can require significant amounts of processing time, memory, diskspace, and so forth. Many subscribers either do not have the ability toview transcriptions at the moment due to device-based limitations orthey do not have desire to read view the transcriptions at that time orfor that particular message. Further, certain subscribers simply do notaccess transcriptions regularly and prefer to listen to or view theoriginal message instead of the transcription. In such cases, theresources spent to transcribe messages are effectively wasted and couldhave been allocated to process more urgent messages. This waste leadssystem designers to intentionally overdesign a transcription andmessaging system and spend more money constructing such a system than isactually necessary.

SUMMARY

Additional features and advantages of the disclosure will be set forthin the description which follows, and in part will be obvious from thedescription, or can be learned by practice of the herein disclosedprinciples. The features and advantages of the disclosure can berealized and obtained by means of the instruments and combinationsparticularly pointed out in the appended claims. These and otherfeatures of the disclosure will become more fully apparent from thefollowing description and appended claims, or can be learned by thepractice of the principles set forth herein.

Disclosed herein are systems, methods, and non-transitorycomputer-readable storage media for selectively transcribing messages.Five general approaches are disclosed herein. The first approach isdirected to checking for a transcription capable client, whichtranscribes messages when a client device is capable of receivingtranscriptions and when an associated class of service indicates thattranscriptions should be performed. The second approach isplatform-controlled predefined selective transcription and the thirdapproach is user-controlled predefined selective transcription. Oneaspect of this approach is driven by transcription rules. The fourthapproach is user-controlled on-demand selective transcription before themessage is stored or deposited for transcription. An example of this isa user transferring an incoming caller to voicemail and indicating thatthe voicemail be transcribed. The fifth approach is user-controlledon-demand selective transcription after the message is stored. In oneembodiment of this approach, a user must specifically request that astored message be transcribed. These approaches can be used separately,in combination with each other, and/or with other transcriptionoptimization techniques.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the disclosure can be obtained, a moreparticular description of the principles briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only exemplary embodiments of the disclosure and are nottherefore to be considered to be limiting of its scope, the principlesherein are described and explained with additional specificity anddetail through the use of the accompanying drawings in which:

FIG. 1 illustrates an example system embodiment;

FIG. 2 illustrates an example unified messaging (UM) server and UMclient configuration;

FIG. 3 illustrates a first example method embodiment;

FIG. 4 illustrates a second example method embodiment; and

FIG. 5 illustrates a third example embodiment.

DETAILED DESCRIPTION

Various embodiments of the disclosure are discussed in detail below.While specific implementations are discussed, it should be understoodthat this is done for illustration purposes only. A person skilled inthe relevant art will recognize that other components and configurationsmay be used without parting from the spirit and scope of the disclosure.

The present disclosure addresses the need in the art for prioritizingand selectively transcribing messages. Some introductory principles andconcepts are discussed first, followed by a brief description of a basicgeneral purpose system or computing device in FIG. 1 which can beemployed to practice the concepts is disclosed herein. A more detaileddescription of a unified messaging platform and the various methods willthen follow.

Transcribing a voicemail from audio to text is a very resource intensiveprocess, requiring significant amounts of processor time, memory,storage, and so forth. This disclosure provides a framework foroptimizing resource utilization and thereby reducing costs, throughselective transcription mechanisms. This ensures that transcriptions areonly performed when necessary. Five major types of selectivetranscription disclosed herein include (1) a transcription-capableclient check, (2) platform-controlled predefined selectivetranscription, (3) user-controlled pre-defined selective transcription,(4) user-controlled on-demand selective transcription (pre-deposit), and(5) user-controlled on-demand selective transcription (post-deposit).These five types of selective transcription shall be discussed herein asthe various embodiments are set forth. The disclosure now turns to FIG.1.

With reference to FIG. 1, an exemplary system 100 includes ageneral-purpose computing device 100, including a processing unit (CPUor processor) 120 and a system bus 110 that couples various systemcomponents including the system memory 130 such as read only memory(ROM) 140 and random access memory (RAM) 150 to the processor 120. Thesystem 100 can include a cache (not shown) of high speed memoryconnected directly with, in close proximity to, or integrated as part ofthe processor 120. The system 100 copies data from the memory 130 and/orthe storage device 160 to the cache for quick access by the processor120. In this way, the cache provides a performance boost that avoidsprocessor 120 delays while waiting for data. These and other modules canbe configured to control the processor 120 to perform various actions.Other system memory 130 may be available for use as well. The memory 130can include multiple different types of memory with differentperformance characteristics. It can be appreciated that the disclosuremay operate on a computing device 100 with more than one processor 120or on a group or cluster of computing devices networked together toprovide greater processing capability. The processor 120 can include anygeneral purpose processor and a hardware module or software module, suchas module 1 162, module 2 164, and module 3 166 stored in storage device160, configured to control the processor 120 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. The processor 120 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

The system bus 110 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, and alocal bus using any of a variety of bus architectures. A basicinput/output (BIOS) stored in ROM 140 or the like, may provide the basicroutine that helps to transfer information between elements within thecomputing device 100, such as during start-up. The computing device 100further includes storage devices 160 such as a hard disk drive, amagnetic disk drive, an optical disk drive, tape drive or the like. Thestorage device 160 can include software modules 162, 164, 166 forcontrolling the processor 120. Other hardware or software modules arecontemplated. The storage device 160 is connected to the system bus 110by a drive interface. The drives and the associated computer readablestorage media provide nonvolatile storage of computer readableinstructions, data structures, program modules and other data for thecomputing device 100. In one aspect, a hardware module that performs aparticular function includes the software component stored in anon-transitory computer-readable medium in connection with the necessaryhardware components, such as the processor 120, bus 110, output device(e.g., display) 170, and so forth, to carry out the function. The basiccomponents are known to those of skill in the art and appropriatevariations are contemplated depending on the type of device, such aswhether the device 100 is a small, handheld computing device, a desktopcomputer, or a computer server.

Although the exemplary embodiment described herein employs the hard disk160, it should be appreciated by those skilled in the art that othertypes of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, digital versatile disks, cartridges, random access memories(RAMs) 150, read only memory (ROM) 140, a cable or wireless signalcontaining a bit stream and the like, may also be used in the exemplaryoperating environment. Non-transitory computer-readable storage mediaexpressly exclude media such as energy, carrier signals, electromagneticwaves, and signals per se.

To enable user interaction with the computing device 100, an inputdevice 190 represents any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 170 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems enable a user to provide multiple types of input to communicatewith the computing device 100. The communications interface 180generally governs and manages the user input and system output. There isno restriction on operating on any particular hardware arrangement andtherefore the basic features here may easily be substituted for improvedhardware or firmware arrangements as they are developed.

For clarity of explanation, the illustrative system embodiment ispresented as including individual functional blocks including functionalblocks labeled as a “processor” or processor 120. The functions theseblocks represent may be provided through the use of either shared ordedicated hardware, including, but not limited to, hardware capable ofexecuting software and hardware, such as a processor 120, that ispurpose-built to operate as an equivalent to software executing on ageneral purpose processor. For example the functions of one or moreprocessors presented in FIG. 1 may be provided by a single sharedprocessor or multiple processors. (Use of the term “processor” shouldnot be construed to refer exclusively to hardware capable of executingsoftware.) Illustrative embodiments may include microprocessor and/ordigital signal processor (DSP) hardware, read-only memory (ROM) 140 forstoring software performing the operations discussed below, and randomaccess memory (RAM) 150 for storing results. Very large scaleintegration (VLSI) hardware embodiments, as well as custom VLSIcircuitry in combination with a general purpose DSP circuit, may also beprovided.

The logical operations of the various embodiments are implemented as:(1) a sequence of computer-implemented steps, operations, or proceduresrunning on a programmable circuit within a general use computer, (2) asequence of computer implemented steps, operations, or proceduresrunning on a specific-use programmable circuit; and/or (3)interconnected machine modules or program engines within theprogrammable circuits. The system 100 shown in FIG. 1 can practice allor part of the recited methods, can be a part of the recited systems,and/or can operate according to instructions in the recitednon-transitory computer-readable storage media. Such logical operationscan be implemented as modules configured to control the processor 120 toperform particular functions according to the programming of the module.For example, FIG. 1 illustrates three modules Mod1 162, Mod2 164 andMod3 166 which can be modules configured to control the processor 120.These modules may be stored on the storage device 160 and loaded intoRAM 150 or memory 130 at runtime or may be stored as would be known inthe art in other computer-readable memory locations.

Having disclosed some basic system components, the disclosure now turnsto the exemplary method embodiment shown in FIG. 2. For the sake ofclarity, the method is discussed in terms of an exemplary system such asis shown in FIG. 1 configured to practice the method.

The disclosure now turns to FIG. 2 which illustrates an example overview200 of a unified messaging (UM) server 202 and UM client configurationwith a diversity of clients, such as a limited display device 210A, asmartphone 210B, a telephone with no display 210C, and a personalcomputer 210D. The UM server 202 and/or UM clients 210A, 210B, 210C,210D can include all or part of the elements of the exemplary system 100shown in FIG. 1. The UM server 202 receives messages from multiplemessage sources 204 a, 204 b, 204 c via a communication network 206,such as the public switched telephone network or the Internet. Themessage sources can provide message such as voicemails, video messages,faxes, images, multimedia messages, and/or hyperlinks.

When the UM server 202 receives messages, the UM server 202 can identifya recipient (also called user or subscriber herein) of the message andretrieve a subscriber profile from a UM directory 214, and can store themessage in the subscriber's mailbox (not shown). The subscriber profilecan provide information about a class of service for the subscriber. Forexample, one subscriber can pay a premium fee for real-timetranscription service, another subscriber can pay a lower fee for afirst non-real-time transcription service that indicates a preferencefor a short transcription time, but the short time is not guaranteed,and a third subscriber can use a second non-real-time transcriptionservice for free that has no preference for a transcription delay. TheUM server 202 can send non-text contents of messages (e.g., voicemessages) to the transcription server(s) 208 to be transcribed(converted to text messages). Content to be transcribed is referred toas raw-media content herein for conciseness. In at least one embodiment,the UM server 202 transmits raw content to the transcription server(s)208 after receiving a complete message, which contains one or more rawcontent(s). In another embodiment, the UM server 202 transmits rawcontent to the transcription server(s) 208 even if the UM server 202 hasnot received the entire message. While waiting to be transcribed,non-real-time raw contents can be deposited in a queue internal to theUM server 202, a queue internal to the transcription server(s) 208,and/or a queue external to both the UM server 202 and the transcriptionserver(s) 208. In one case, multiple non-real-time queues candistinguish between different classes of non-real-time transcriptions.

The UM directory 214 can store additional classes of service beyond theexemplary classes of service discussed herein. In one aspect, a hybridclass of service provides a different class of service based on time,location, subscription, date, and other user parameters. For example, ahybrid class of service for an accountant may indicate a real-time classof service on weekdays which are not federal holidays between 8:00 a.m.and 6:30 p.m. and a no preference class of service all other times. Inanother example, a salesman can indicate that all incoming messages fromphone numbers or emails originating from a group of client companies areassociated with a real-time transcription class of service and all othermessages are associated with a class of service which prefers but doesnot require a short transcription time. Other variations and classes ofservice can be applied.

In one aspect, the UM directory 214 or another component (not shown)associated with the UM server 202 also provides information to the UMserver 202 related to the probability of messages being accessed in thenear term. If the user receives and accesses a new message notificationwhile the message transcription is pending, the UM server 202 canincrease the probability that the message will be accessed in the nearterm. If the user receives the new message notification indicating tothe user that he/she has received a new message in his/her mailbox onthe UM server 202, but the user does not access the message, the UMserver 202 can lower the probability or leave it unchanged. Theprobability of near-term access can be based on historical statisticsfor subscriber message/transcription access times, such as the averagetime between new message notification and transcription access. Theaverage time can be per-user for a very granular average for aparticular user or can be averaged for similar customers. For example,the average time between new message notification and message access canbe calculated for males from ages 18-25 in Florida, for Asian females inthe Rocky Mountains, or for college students nationwide.

The probability of near-term access can further be based on subscriberpresence information. Presence information can convey a user's availablecapacities to communicate. For example, presence can indicate whether auser is available or not, whether a user can accept a video feed or not,the user's physical location, which specific communication devices theuser has available, and so forth. Presence can also indicate a user'swillingness to accept communications. For example, a user presence canindicate “do not disturb”, “in a meeting”, or “available”. Presenceinformation can be automatically generated (e.g., based oncommunications with other components, some of which are not shown) ormanually set by the user. In one configuration, the UM directory 214receives subscriber presence information from UM clients 210A, 210B,210C, 210D and/or components that directly and/or indirectly communicatewith such clients and bases the probability of messages being accessedin the near term on that presence information. Presence information canbe gleaned from one source or from multiple sources, such as web browserlogins, smartphone applications, GPS signals, calendar events, and soforth. Furthermore, presence information can also be determined fromactivities and/or login status of subscribers using the sample devicesfor UM clients 210 a, 210 b, 210 c, and 210 d.

Other potentially relevant factors to the probability of near-termaccess can include message parameters, such as indicators of messageurgency, and message meta-data, such as a message source or messagetitle (where available). The UM server 202 can also dedicate moreresources to subscribers that have historically received higherconfidence transcriptions from the transcription server(s) 208 for theirraw messages.

The UM server 202 communicates with a transcription server(s) 208 whichtranscribe all or part of each message from the message sources via afinite number of communication channels 212. The finite number ofcommunication channels can be divided into multiple groups (not shown).For example, a first group of communication channels associated with afirst group of transcription servers can handle real-time transcriptionsand a second group of communication channels associated with a secondgroup of transcription servers can handle non-real-time transcriptions.The transcription server 208 can transcribe messages using speech totext, OCR, pattern recognition, and/or any other suitable mechanism(s)to extract text from non-textually formatted messages or raw content.The transcription server 208 can also perform translation services totranslate extracted text from one language to another, if needed. The UMserver 202 can then offer an original language transcription and atranslated transcription to the UM client. The UM server 202 identifiesa particular UM client 210A, 210B, 210C, 210D for each message andtransmits information to the respective UM client regarding the message,including a transcription status. In the case of a voicemail, the UMserver 202 can transmit information indicating a sender of thevoicemail, a duration of the voicemail, a callback number, a time of thevoicemail, a “headline” of the voicemail transcription and so forth.

Some example UM clients include smartphones, PDAs, cellular phones, webbrowsers, mobile phone applications, a personal computer, anintermediate UM server, an IPTV set top box, and so forth. Additionaltypes of client devices can be used as well, all of which are not shownin FIG. 2. When a UM client establishes a session with the UM server202, the UM server 202 can return a listing of messages and, possibly,transcription progress for messages in the listing. If the UM server 202receives progress updates from the transcription server(s) 208, such asa revised expected completion time or a completed transcription, fromthe transcription server 208, the UM server 202 can transmit updatednotifications to the appropriate UM client device.

Having disclosed some basic system components and an exemplary unifiedmessaging server and client configuration, the disclosure now turns to adiscussion of five types of selective message transcription. The firsttype of selective message transcription is checking for atranscription-capable UM client. Before transcription is enabled for asubscriber, the UM server 202 retrieves a Class-of-Service (CoS), suchas from a UM directory 214, for the subscriber to ensure thattranscription is allowed. If the subscriber's CoS allows transcription,the UM server 202 proceeds to determine, where possible, whether thesubscriber is currently accessing the UM server 202 via atranscription-capable device, such as a device capable of displayingtext. Some examples of such devices include a smartphone 210 b and apersonal computer 210 d. Certain devices, such as a plain telephone 210a, do not have any display capabilities and are thus nottranscription-capable. Some devices have limited ability to displaytext, such as a desktop phone 210 c having a display capable of showingonly a single, short line of characters. Depending on these displaycapabilities, the device may or may not qualify astranscription-capable. The UM server 202 can track user logins fromspecific clients, client types, client versions, client identifications,and so forth. In one embodiment, the UM server 202 tracks a source ofthe last “getMessageTranscription” application programming interface(API) call from UM client applications on behalf of each subscriber. Forexample, the API call may include a fingerprint of the requesting clientdevice that can identify the device type. The server 202 can then lookup in a table whether that device type is transcription capable.Alternately, the API call can include a flag indicating whether a deviceis transcription capable or not.

In one variation, if the last “getMessageTranscription” API calloccurred within the last N days, then the UM server 202 enablestranscription. N can be a CoS configurable attribute, allowing differentvalues to be used for different subscribers. The current state oftranscription may be stored in an attribute in the UM Directory 214.Whenever the “transcription capable” state changes for a particularuser, the UM server 202 can update such information in the UM server 202and/or the UM directory 214 for that user.

The second type of selective transcription is platform-controlledpre-defined selective transcription. In this type, the UM server 202 isconfigured to act based on pre-defined transcription exceptions. Thetranscription exceptions can be applied globally or can be associatedwith a particular subscriber and/or CoS. The UM directory 214 can storethese exceptions. Exceptions can take the form of a ruleset thatdetermines when transcriptions should be skipped that would otherwise beperformed. A ruleset can include one or more rules to skip entirely orchange priorities of transcriptions such as “skip transcription for anymessages greater than 1 min in length” or “skip transcription ifsubscriber currently has more than 4 transcriptions pending”. Rulesetscan also include positive rules regarding which types of messages shouldalways be transcribed.

The third type of selective transcription is user-controlled pre-definedselective transcription. In one variation of this approach, the UMdirectory 214 and/or the UM server 202 provide a subscriber interface toallow subscribers to adjust the details of each rule and to adjust theorder in which the rules are applied to messages for that subscriber.Subscriber settings in the UM platform 200 are updated to reflect newpre-defined options for transcription. Some exemplary options and rulesinclude “skip transcription if the sender of the message is not anapproved contact”, “assign a low priority to transcriptions for messagesleft between midnight and 7:30 a.m.”, “transcribe messages from unknowncallers”, “transcribe message from callers present in my address book”,“transcribe message from callers not present in my address book”,“transcribe messages marked urgent”, “transcribe messages with a readreceipt request”, and “transcribe messages from callers in the Legaldepartment”. User-controlled rules can be conditional, such as based ona client device state, a user location, a current user activity,calendar events, and so forth. The conditional rules can depend onmultiple user-dependent or user-independent factors. User-controlledrules can be applied in addition to CoS rules or can be overridden byconflicting CoS rules and/or exceptions.

The fourth type of selective transcription is pre-deposit,user-controlled, on-demand selective transcription. This supportsscenarios in which the subscriber is presented with an enhanced callhandling interface, such as an enhanced graphical interface on asmartphone, IPTV, or softphone. Upon receiving a new call, thesubscriber chooses an option to “forward to voicemail and provide atranscription”. The UM platform 200 is enhanced to support receipt andprocessing of a new parameter in call signaling. Alternately, the UMserver 202 can communicate with client devices 210 a, 210 b, 210 c, 210d via a separate data channel such as a web services API channel. Thisparameter indicates the specific feature that is being requested. Forexample, when a call is forwarded to voicemail, the system can associatea redirecting reason code with the redirecting number. In SessionInitiation Protocol (SIP), this can be the reason code associated with aSIP diversion header, a cause code associated with a Voicemail URI, andso forth.

The fifth type of selective transcription is a post-deposit,user-controlled, on-demand selective transcription. When this is enabledin a subscriber's CoS, no messages are automatically transcribed.Instead, the subscriber must specifically request transcription of amessage. This approach can rely on additional functionality via a newAPI call to the UM server 202 such as a “TranscribeMessages ([arrays ofmessage-numbers]) API call, whereby a client device to the UM server 202can request that the UM server 202 initiate transcription for aparticular message or a group of messages. This can lead to modificationof systems which automatically transcribe all messages or no messages.

This approach is not limited to only subscribers that have on-demandtranscription service. The TranscribeMessages API call can includeimplied and/or explicitly-requested limits on the maximum number ofsimultaneously pending transcriptions for a given subscriber to ensurethat a client does not request transcription for a large number ofpreviously untranscribed messages in a short interval.

The approaches set forth herein can reduce the hardware cost for aunified messaging platform 200 and can improve scalability of theplatform by ensuring that transcriptions are only performed whensubscribers are actively using transcription-capable clients. Theunified messaging platform 200 can allow pre-defined and on-demandvoicemail transcription and reduce the possibility of delays invoicemail transcription to improve the customer experience.

The disclosure now turns to the exemplary method embodiments of thesetypes of selective transcription. FIG. 3 illustrates a first examplemethod embodiment for selectively transcribing messages. The method isdiscussed in terms of a system configured to practice the method, suchas system 100 shown in FIG. 1. The system 100 receives, at a messagingserver, such as the UM server 202 of FIG. 2, a message addressed to asubscriber (302) and retrieves a class of service associated with thesubscriber (304). Then, if the class of service indicates thattranscription is to be performed, the system 100 determines whether thesubscriber is accessing the messaging server via a transcription capableclient (306). The system 100 transcribes the message if the subscriberis accessing the messaging server via the transcription capable client(308). A transcription server separate from or incorporated into thesystem 100 can transcribe the message. In one variation, the system 100transcribes the message if the messaging server has received a requestfor a transcription from the subscriber within a threshold time. Thethreshold time can be associated with the class of service. The system100 can optionally identify a current transcription state for thesubscriber, store the current transcription state in a subscriberdirectory, and notify the subscriber when the current transcriptionstate changes.

FIG. 4 illustrates a second example embodiment for selectivelytranscribing messages. The system 100 receives, at a messaging server,such as the UM server 202 of FIG. 2, a message for a subscriber (402)and checks attributes associated with the message against a set oftranscription rules if the message is transcribable (404). Theattributes can include, for example, the type of the message, the rawcontent of the message, a sender of the message, a category of thesender of the message, a contact list of the subscriber, a prioritymarking of the message, and a request for a read receipt. Otherattributes include any information which describes any single aspect ormultiple aspects of the message, its sender, or any other associatedentities.

The set of transcription rules can include a set of transcriptionexceptions. The set of transcription rules can be retrieved from adirectory of user accounts. Each user's account can include a set oftranscription rules and the user's class of service can indicateadditional transcription rules to apply. Transcription rules can includetranscription exceptions which define messages having a certainattribute or pattern of attributes that are not to be transcribedautomatically. A user can explicitly define one or more transcriptionrules, or the system can infer and automatically generate transcriptionrules by observing user behavior. In one aspect, the transcription rulesare not based solely on attributes of the message or the sender, butalso on factors external to the message. For example, one of thetranscription rules can be based on a threshold of the number ofcurrently pending transcriptions.

If at least one of the message and at least one of the attributesmatches any of the set of transcription rules, the system 100 passes themessage to a transcription server for transcription (406), and if atleast one of the message and at least one of the attributes does notmatch at least one of the set of transcription rules, the system 100leaves the message untranscribed (408).

FIG. 5 illustrates a third exemplary method embodiment for selectivelytranscribing messages. The system 100 presents, via a UM client device,a notification of an incoming call to a subscriber (502). Thenotification can be presented in real time simultaneously with theincoming call. The notification can be presented to the user (UMsubscriber) via an enhanced interface. The system 100 converts theincoming call to a saved message based on input received from thesubscriber and generates a transcription of the saved message (504).Converting the incoming call can optionally be performed based on inputreceived from the subscriber in response to the notification. The system100 can also assign the transcription a reason code and/or a redirectingnumber received from the subscriber via a separate data channel. Thereason code can be associated with a Session Initiation Protocol (SIP)diversion header and/or a cause code associated with a voicemail UniformResource Identifier (URI). The system 100 presents the transcription tothe subscriber (506). The system 100 can present the transcription viaone or more communication medium, such as a text message, an image ofthe transcribed text, an email, a tweet, and so forth.

Embodiments within the scope of the present disclosure may also includetangible and/or non-transitory computer-readable storage media forcarrying or having computer-executable instructions or data structuresstored thereon. Such non-transitory computer-readable storage media canbe any available media that can be accessed by a general purpose orspecial purpose computer, including the functional design of any specialpurpose processor as discussed above. By way of example, and notlimitation, such non-transitory computer-readable media can include RAM,ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storageor other magnetic storage devices, or any other medium which can be usedto carry or store desired program code means in the form ofcomputer-executable instructions, data structures, or processor chipdesign. When information is transferred or provided over a network oranother communications connection (either hardwired, wireless, orcombination thereof) to a computer, the computer properly views theconnection as a computer-readable medium. Thus, any such connection isproperly termed a computer-readable medium. Combinations of the aboveshould also be included within the scope of the computer-readable media.

Computer-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Computer-executable instructions also includeprogram modules that are executed by computers in stand-alone or networkenvironments. Generally, program modules include routines, programs,components, data structures, objects, and the functions inherent in thedesign of special-purpose processors, etc. that perform particular tasksor implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represents examples ofcorresponding acts for implementing the functions described in suchsteps.

Those of skill in the art will appreciate that other embodiments of thedisclosure may be practiced in network computing environments with manytypes of computer system configurations, including personal computers,hand-held devices, multi-processor systems, microprocessor-based orprogrammable consumer electronics, network PCs, minicomputers, mainframecomputers, and the like. Embodiments may also be practiced indistributed computing environments where tasks are performed by localand remote processing devices that are linked (either by hardwiredlinks, wireless links, or by a combination thereof) through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

The various embodiments described above are provided by way ofillustration only and should not be construed to limit the scope of thedisclosure. Those skilled in the art will readily recognize variousmodifications and changes that may be made to the principles describedherein without following the example embodiments and applicationsillustrated and described herein, and without departing from the spiritand scope of the disclosure.

We claim:
 1. A method comprising: transferring a call to a subscriber toa voicemail system; determining that the call to the subscriber resultedin a voicemail; determining that the voicemail should be transcribed totext to yield a determination, the determination being based on at leastone of a class of service associated with the subscriber or an inputfrom the subscriber requesting transcription of the voicemail into text;based on the determination, transcribing the voicemail into text toyield a voicemail transcription; and presenting the voicemailtranscription on a device associated with the subscriber.
 2. The methodof claim 1, further comprising: presenting, via a client device, anotification of the call to the subscriber.
 3. The method of claim 1,receiving, while presenting the notification, an input from thesubscriber with regard to the incoming call, wherein the input isassociated with instructions to: (1) transfer the incoming call to avoicemail system; and (2) when the incoming call results in a voicemailat the voicemail system, transcribe the voicemail into text;transferring, based on the input, the incoming call to the voicemailsystem to yield the voicemail; determining whether a current time iswithin a first time window associated with a first class of service or asecond time window a second class of service to yield a determined classof service according to the current time; generating, based on thedetermined class of service according to the current time, atranscription of the voicemail, the transcription comprising textgenerated from the voicemail; and presenting the transcription on adevice of the subscriber.
 2. The method of claim 1, wherein thetransferring of the incoming call and the generating of thetranscription are further based on a class of service associated withthe subscriber.
 3. The method of claim 2, wherein the class of serviceis one of a plurality of classes of service, each class of the pluralityof classes of service having a distinct functionality and cost, whereinthe cost requires a premium for a threshold time.
 4. The method of claim1, further comprising: identifying a current transcription state of thevoicemail for the subscriber; storing the current transcription state ina subscriber directory; and notifying the subscriber when the currenttranscription state changes.
 5. The method of claim 1, wherein thetransferring of the incoming call and the generating of thetranscription are performed by the client device.
 6. The method of claim1, further comprising, prior to the generating of the transcription,comparing the voicemail to a set of transcription rules to determine ifthe voicemail should remain untranscribed.
 7. The method of claim 1,wherein the first time window and the second time window do not overlapand cover a consecutive twenty-four hours.
 8. A system comprising: aprocessor; and a computer-readable storage device having instructionsstored which, when executed by the processor, cause the processor toperform operations comprising: presenting, via a client device, anotification of an incoming call to a subscriber; receiving, whilepresenting the notification, an input from the subscriber with regard tothe incoming call, wherein the input indicates to: (1) transfer theincoming call to a voicemail system; and (2) when the incoming callresults in a voicemail at the voicemail system, transcribe the voicemailinto text; transferring, based on the input, the incoming call to thevoicemail system; determining whether a current time is within a firsttime window associated with a first class of service or a second timewindow a second class of service to yield a determined class of serviceaccording to the current time; generating, based on the determined classof service according to the current time, a transcription of thevoicemail, the transcription comprising text generated from thevoicemail; and presenting the transcription on a device of thesubscriber.
 9. The system of claim 8, wherein the transferring of theincoming call and the generating of the transcription are further basedon a class of service associated with the subscriber.
 10. The system ofclaim 9, wherein the class of service is one of a plurality of classesof service, each class of the plurality of classes of service having adistinct functionality and cost, wherein the cost requires a premium fora threshold time.
 11. The system of claim 8, the computer-readablestorage device having additional instructions stored which, whenexecuted by the processor, cause the processor to perform operationscomprising: identifying a current transcription state of the voicemailfor the subscriber; storing the current transcription state in asubscriber directory; and notifying the subscriber when the currenttranscription state changes.
 12. The system of claim 8, wherein thetransferring of the incoming call and the generating of thetranscription are performed by the client device.
 13. The system ofclaim 8, the computer-readable storage device having additionalinstructions stored which, when executed by the processor, cause theprocessor to perform operations comprising, prior to the generating ofthe transcription, comparing the voicemail to a set of transcriptionrules to determine if the voicemail should remain untranscribed.
 14. Thesystem of claim 8, wherein the transcription occurs via a hybridtranscription service comprising a first class of service for a timewindow and a second class of service for a remainder time window, andwherein the time window and the remainder time window do not overlap andcover a consecutive twenty-four hours.
 15. A computer-readable storagedevice having instructions stored which, when executed by a computingdevice, result in the computing device performing operations comprising:presenting, via a client device, a notification of an incoming call to asubscriber; receiving, while presenting the notification, an input fromthe subscriber with regard to the incoming call, wherein the input isassociated with instructions to: (1) transfer the incoming call to avoicemail system; and (2) when the incoming call results in a voicemailat the voicemail system, transcribe the voicemail into text;transferring, based on the input, the incoming call to the voicemailsystem to yield the voicemail; determining whether a current time iswithin a first time window associated with a first class of service or asecond time window a second class of service to yield a determined classof service according to the current time; generating, based on thedetermined class of service according to the current time, atranscription of the voicemail, the transcription comprising textgenerated from the voicemail; and presenting the transcription on adevice of the subscriber.
 16. The computer-readable storage device ofclaim 15, wherein the transferring of the incoming call and thegenerating of the transcription are further based on a class of serviceassociated with the subscriber.
 17. The computer-readable storage deviceof claim 16, wherein the class of service is one of a plurality ofclasses of service, each class of the plurality of classes of servicehaving a distinct functionality and cost, wherein the cost requires apremium for a threshold time.
 18. The computer-readable storage deviceof claim 15, having additional instructions stored which, when executedby the computing device, cause the computing device to performoperations comprising: identifying a current transcription state of thevoicemail for the subscriber; storing the current transcription state ina subscriber directory; and notifying the subscriber when the currenttranscription state changes.
 19. The computer-readable storage device ofclaim 15, wherein the transferring of the incoming call and thegenerating of the transcription are performed by the client device. 20.The computer-readable storage device of claim 15, having additionalinstructions stored which, when executed by the computing device, causethe computing device to perform operations comprising, prior to thegenerating of the transcription, comparing the voicemail to a set oftranscription rules to determine if the voicemail should remainuntranscribed.